package estructuras.common;

import java.util.Arrays;
import java.util.TreeSet;

public abstract class EspacioQueAlmacena extends EspacioConCapacidadMutable{
	TreeSet<Estancia> estancias = new TreeSet<>();
	int[] lleno = new int[300 * 24];
	
	public EspacioQueAlmacena() {
		Arrays.fill(lleno, 0);
	}
	
	public void addEstancia(Estancia estancia){
		estancias.add(estancia);
		for(int i = estancia.fechaInicio.toHoras(); i < estancia.fechaFin.toHoras(); i++)
			lleno[i]++;
	}
	
	public int getBottleNeckParaIntervaloDeTiempo(Fecha fechaInicio, Fecha fechaFin){
		int res = Integer.MAX_VALUE;
		for(int i = fechaInicio.toHoras(); i <= fechaFin.toHoras(); i++)
			res = Math.min(res, getCapacidadEnInstanteDeTiempo(new Fecha(i)) - lleno[i]);
		return res;
	}
}
